Data objects (e.g., databases, file directories, files within directories, email exchange mailboxes, etc.) are typically stored on a volume. While it is said that a volume stores data objects, in reality the data objects are stored on memory devices, such as hard disks, allocated to the volume. But hard disks fail at the worst times and take all the data objects stored on them with them when they go. This problem motivated the creation of backup systems. There is continuous and growing demand for backup systems which are faster, more efficient, more economical, and more powerful than those before.
Two commonly used ways to backup data are volume level backups and application level backups. Each mode has its advantages and drawbacks. Volume level backups are block-by-block copies of an entire volume. Such block-by-block copying may be done relatively quickly, providing the advantage of using relatively few computer resources, such as processing power. However, volume level backups do not allow a user to restore a single application or content specific to an application. On the other hand, application level backups do allow a user to restore an application or content specific to an application, which is advantageous for a user who does not wish to restore an entire volume. However, application level backups are relatively slow and have the disadvantage of imposing a relatively high burden on computer resources.
Application level restores require application specific metadata. For instance, to restore an application, it is necessary to know what files the application uses. This is just one example, various other application specific metadata is also required or used, such as the application name, application run time, and so on. When an application level backup is performed, as described above, this metadata is collected and copied. The application level backup proceeds by opening each file, then storing the file contents to backup. The files used by an application are generally stored on one or more volumes. The present invention is described with reference to the files being stored on a single volume, it being understood the present invention should not be limited thereto. Application specific metadata can be collected during this backup process. This metadata may be stored apart from the files, for instance on another server. As mentioned above, application level backups are generally slow and impose a high burden on computer resources. However, the application specific metadata gathered during this process may be used to restore an application in its entirety, or specific content within an application. For example, Microsoft Exchange™ is organized into mailboxes. If a user wishes to specify one or more mailboxes to restore, application specific metadata is used.
On the other hand, performing a volume level (block by block) backup is, as noted above, much faster than performing an application level backup of all applications which have access to a given volume. A volume level backup copy process produces a volume image backup file, which contains an exact replica of the volume backed up. However, application specific metadata is not collected, so it is impossible to restore an application, or specific content within an application, from a volume image backup copy without restoring the entire volume.
What is needed is a way to allow users to take advantage of the relative speed of volume level backups, without having to sacrifice the ability to perform application level restores.